"""
演示将RDD输出为Python对象
"""

from pyspark import SparkConf, SparkContext
import os
import json

os.environ['PYSPARK_PYTHON'] = 'D:/Work/anaconda3/python.exe'

conf = SparkConf().setMaster("local[*]").setAppName("test_saprk")
sc = SparkContext(conf=conf)

# 准备RDD
rdd = sc.parallelize([1, 2, 3, 4, 5])

# collect算子，输出RDD为list对象
print(f"内容：{rdd.collect()}，类型：{type(rdd.collect())}")

# reduce算子，对RDD内容进行两两聚合
sum = rdd.reduce(lambda a, b: a + b)
print(f"内容：{sum}，类型：{type(sum)}")

# take算子，取出RDD中的前N个元素，组成list返回
take_list = rdd.take(3)
print(f"内容：{take_list}，类型：{type(take_list)}")

# cout算子，计算RDD内数据的个数
num_count = rdd.count()
print(f"内容：{num_count}，类型：{type(num_count)}")